from pyspark.context import SparkContext

sc = SparkContext()

lines_rdd = sc.textFile("../../data/students.txt")

# Driver端的一个普通的列表
ids = [
    "1500100003",
    "1500100004",
    "1500100022",
    "1500100053",
    "1500100123",
    "1500100434"
]
print(ids)

def filter_fun(line):

    id = line.split(",")[0]

    # 在算子内修改算子外的一个普通变量不会生效
    # 当在算子内使用算子外的一个变量时，这个变量就已经时一个变量副本了
    ids.append("数加")

    print(ids)

    # 在Executor端使用了端的一个变量
    return id in ids


filter_rdd = lines_rdd.filter(filter_fun)

filter_rdd.foreach(print)

print(ids)